In order to be successful, software development companies strive to produce high-quality and error-free software. Because the user interface of a software application is typically the most visible aspect of a software application, software development companies may devote significant resources to performing thorough quality-assurance reviews of their user interfaces.
A thorough quality-assurance review of a software application's user interface may be expensive, requiring many man-hours to review each aspect of the user interface in its various states. In order to increase both the efficiency and thoroughness of such quality-assurance reviews, some software development companies may use automation tools to automatically record the actions (such as mouse clicks and key presses) of a quality-assurance engineer as he/she interacts with and guides a user interface through its various states. The automation tool may then play back these recorded actions on different versions or builds (such as operating-system-specific or language-specific versions or builds) of the user interface to test for display glitches, errors, or other defects in the user interface.
Unfortunately, many conventional automation tools fail to reliably identify the user-interface controls (such as command buttons, selection boxes, menus, and the like) that are the target of the quality-assurance engineer's actions. For example, because the size and orientation of, and class names, styles, and text captions for, user-interface controls may vary across the various builds and versions of a user interface, or across the technologies (such as HTML, JAVA, and WIN32) used to create such user interfaces, conventional automation tools may fail to correctly identify or recreate various user-interface controls during automated recording or playback operations. As such, the instant disclosure identifies a need for reliably identifying controls invoked during quality-assurance reviews of user interfaces.